//
//  GGRouteRequest.h
//  qqqqqq
//
//  Created by iOSer on 2017/3/2.
//  Copyright © 2017年 iOSer. All rights reserved.
//

#import <Foundation/Foundation.h>
typedef NS_ENUM(NSInteger, JumpMethod) {
    PUSH,
    PRESENT
};
@interface GGRouteRequest : NSObject<NSCopying>
@property(nonatomic,copy,readonly) NSURL *URL;
@property(nonatomic,copy) NSString *routeExpression;
@property(nonatomic,copy,readonly) NSDictionary *queryParameters;
@property(nonatomic,copy,readonly) NSDictionary *routeParameters;
@property(nonatomic,copy,readonly) NSDictionary *primitiveParams;
@property(nonatomic,assign) JumpMethod jumpMethod;
@property(nonatomic,assign) BOOL isShowNav;
@property(nonatomic,copy) NSString *navTitle;
@property(nonatomic,assign) BOOL isNavAnimation;
@property(nonatomic,strong) NSURL *callbackURL;
@property(nonatomic,copy) void (^targetCallBack)(NSError *error,id responseObject);
@property(nonatomic) BOOL isConsumed;

-(id)objectForKeyedSubscript:(NSString *)key;

-(instancetype)initWithURL:(NSURL *)URL routeExpression:(NSString *)routeExpression routePatameters:(NSDictionary *)routePatameters primitivePatameters:(NSDictionary *)primitiveParameters isJumpMethod:(JumpMethod)jumpMethod isShowNav:(BOOL)isShowNav NAVTitle:(NSString *)navTitle isNavAnimation:(BOOL)isNavAnimation targetCallBack:(void (^)(NSError *, id))targetCallBack;

-(instancetype)initWithURL:(NSURL *)URL;

-(void)defaultFinishTargetCallBack;
@end
